package com.ftg.learn.chapter04;

import java.util.Scanner;

/**
 * 试题
 *
 * @author kangjx
 * @version 1.0
 * @date 2023/6/10 上午9:22
 */
public class Test01 {

    /**
     * 使用方法 : 函数
     *
     * 函数 : 方法 一段特殊独立指令集
     * [public|private] [static|non-static] [void|基本|引用] [名称] [(参数列)]{
     *    return ;
     * }
     * 调用 :
     *  static : 类名.方法()  static method static method 直接调用
     *  non-static : 对当前类产生实例  可以直接调用 static
     *      类名  引用变量  = new 类名();
     *      引用变量.方法()
     * 作用 :
     * 重用性
     */

    /**
     * 1: 定义四个整数，将它们互相替换例如：i=1;j=2;a=3,b=4,要求输出i=2;j=3;a=4;b=1
     * 要求: 可以定义新的变量多个
     * 只能定义一个新的变量完成
     * 不能定义新的变量完成
     */
    public static void questionOne01() {
        int i = 1, j = 2, a = 3, b = 4;

        i = i + j + a + b;
        b = i - (j + a + b);
        i = i - (j + a + b);

        j = i + j + a + b;

        a = j - (i + a + b);
        j = j - (i + a + b);
        System.out.printf("i=%d,j=%d,a=%d,b=%d", i, j, a, b);
    }


    public static void questionOne02() {
        int i = 1, j = 2, a = 3, b = 4;
        i += 1;
        j += 1;
        a += 1;
        b = i - 1;
        System.out.printf("i=%d,j=%d,a=%d,b=%d", i, j, a, b);
    }

    //社招  ：  解决问题能力
    //校招  :   思想  (数据结构 算法)
    //   专场   ： 985 专场
    //   招聘会 ： 所有公司
    //   网申   ：  ....|...|。。。。

    public static void questionOne03() {
        int[] arr = {1, 2, 3, 4};

        //移位
        for (int i = 0; i < arr.length - 1; i++) {
            int t = arr[i];
            arr[i] = arr[i + 1];
            arr[i + 1] = t;
        }
        int i = arr[0];
        int j = arr[1];
        int a = arr[2];
        int b = arr[3];
        System.out.printf("i=%d,j=%d,a=%d,b=%d", i, j, a, b);
    }

    /**
     * 2: 定义一个5位整数 值随意 10000 99999  int i=52637;  打印各个位置上的数  个位值 i%10
     */
    private final static int TWO_MIN_VALUE = 10000;
    private final static int TWO_MAX_VALUE = 99999;

    public static void questionTwo(int num) {
        if (num < TWO_MIN_VALUE || num > TWO_MAX_VALUE) {
            throw new RuntimeException("对不起，请输入五位正整数！！！");
        }

        /**
         * 十进制用来求进制
         */
        int ten = 10;
        for (int i = num, j = 0; i > 0; i /= ten) {
            System.out.printf("%s位是%d\n", getPosition(j), num / (int) Math.pow(10, j++) % 10);
        }
    }

    /**
     * 根据 数字求位
     *
     * @param i
     * @return
     */
    private static String getPosition(int i) {
        switch (i) {
            case 0:
                return "个位";
            case 1:
                return "十位";
            case 2:
                return "百位";
            case 3:
                return "千位";
            case 4:
                return "万位";
            default:
                return "十万位";
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个五位数!!!");
        int n = scanner.nextInt();
        questionTwo(n);
    }

}
